package com.vodone.v1pin.core.utils
{
	import flash.display.DisplayObject;
	
	import mx.core.Application;
	
	/**
	* 判断组件是否在显示列表工具类
	* 
	* @author zwzhou
	*/	
	public final class VisibilityUtils
	{
		/**
		 * 判断组件是否在显示列表
		 */		
		public static function isDisplayObjectVisible(obj : DisplayObject):Boolean
		{
			if(!obj.visible)
			{
				return false;
			}
			if(null == obj.stage)
			{
				return false;
			}
			return checkDisplayObjectVisible(obj);
		}
		
		/**
		 * 递归判断组件是否在显示列表
		 */	
		private static function checkDisplayObjectVisible(obj : DisplayObject):Boolean
		{
			if(obj.parent != null && !obj.parent.visible)
			{
				return false;
			}
			
			if(obj.parent != null && !(obj.parent is Application))
			{
				return checkDisplayObjectVisible(obj.parent);
			}
			else
			{
				return true;
			}
		}
	}
}